package com.xiaobingby.controller;

import org.apache.shiro.authc.IncorrectCredentialsException;
import org.apache.shiro.authc.UnknownAccountException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by XiaoBingBy on 2017/7/23.
 */
@Controller
public class IndexController {

    @RequestMapping(value = "/index")
    public String index(HttpServletRequest request) {

        //如果登陆失败从request中获取认证异常信息，shiroLoginFailure就是shiro异常类的全限定名
        String exceptionClassName = (String) request.getAttribute("shiroLoginFailure");
        //根据shiro返回的异常类路径判断，抛出指定异常信息
        if(exceptionClassName!=null){
            if (UnknownAccountException.class.getName().equals(exceptionClassName)) {
                //最终会抛给异常处理器

            } else if (IncorrectCredentialsException.class.getName().equals(
                    exceptionClassName)) {

            } else if("randomCodeError".equals(exceptionClassName)){

            }else {

            }
        }
        //此方法不处理登陆成功（认证成功），shiro认证成功会自动跳转到上一个请求路径
        //登陆失败还到login页面

        return "admin/login";
    }

}
